/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package damas.gui;

import damas.modelo.DamasModelo;
import java.awt.Color;
import java.awt.Component;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.table.TableCellRenderer;

/**
 * Renderizador para las celdas de la tabla en {@code DamasGui}
 *
 * @author Sim�n Emmanuel Guti�rrez Brida
 * @version 0.1
 */
public class RenderizadorTablero implements TableCellRenderer
{
    private Color fondo_claro = Color.YELLOW;
    private Color fondo_oscuro = Color.ORANGE;
    private ImageIcon fichaRoja = new ImageIcon(System.class.getResource("/imagenes/ficha_roja.png"));
    private ImageIcon fichaNegra = new ImageIcon(System.class.getResource("/imagenes/ficha_negra.png"));
    private ImageIcon fichaRojaDoble = new ImageIcon(System.class.getResource("/imagenes/ficha_roja_doble.png"));
    private ImageIcon fichaNegraDoble = new ImageIcon(System.class.getResource("/imagenes/ficha_negra_doble.png"));


    @Override
    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
    {
        JLabel newLabel = new JLabel();
        newLabel.setEnabled(true);
        newLabel.setOpaque(true);
        int valor = ((Integer)value).intValue();
        
        if (valor == DamasModelo.NEGRA * DamasModelo.FONDO_BLANCO)
        {
            newLabel.setIcon(fichaNegra);
            newLabel.setBackground(fondo_claro); 
        }
        else if (valor == DamasModelo.ROJA * DamasModelo.FONDO_NEGRO)
        {
            newLabel.setIcon(fichaRoja);
            newLabel.setBackground(fondo_oscuro);
        }
        else if (valor == DamasModelo.NEGRA * DamasModelo.FONDO_NEGRO)
        {
            newLabel.setIcon(fichaNegra);
            newLabel.setBackground(fondo_oscuro);
        }
        else if (valor == DamasModelo.ROJA * DamasModelo.FONDO_BLANCO)
        {
            newLabel.setIcon(fichaRoja);
            newLabel.setBackground(fondo_claro);
        }
        else if (valor == DamasModelo.NEGRA * DamasModelo.FONDO_BLANCO * DamasModelo.DAMA)
        {
            newLabel.setIcon(fichaNegraDoble);
            newLabel.setBackground(fondo_claro);
        }
        else if (valor == DamasModelo.ROJA * DamasModelo.FONDO_NEGRO * DamasModelo.DAMA)
        {
            newLabel.setIcon(fichaRojaDoble);
            newLabel.setBackground(fondo_oscuro);
        }
        else if (valor == DamasModelo.NEGRA * DamasModelo.FONDO_NEGRO * DamasModelo.DAMA)
        {
            newLabel.setIcon(fichaNegraDoble);
            newLabel.setBackground(fondo_oscuro);
        }
        else if (valor == DamasModelo.ROJA * DamasModelo.FONDO_BLANCO * DamasModelo.DAMA)
        {
            newLabel.setIcon(fichaRojaDoble);
            newLabel.setBackground(fondo_claro);
        }
        else if (valor == 0)
        {
            newLabel.setEnabled(false);
        }
        else
        {
            if (valor == DamasModelo.FONDO_BLANCO)
            {
                newLabel.setBackground(Color.YELLOW);
            }
            else if (valor == DamasModelo.FONDO_NEGRO)
            {
                newLabel.setBackground(Color.ORANGE);
            }
        }
        if (row == table.getSelectedRow() && column == table.getSelectedColumn())
        {
            newLabel.setBackground(Color.GREEN);
        }
        return newLabel;
    }

}
